import java.util.Arrays;

public class DeepOrShallow {
    //试图找到实现深/浅拷贝的代码
    /*首先，我们已经知道了深浅拷贝的不同效果，我们先把它表示出来*/
    public static void main(String[] args) {
        int[] a = {1,2,3};
        //第一个浅拷贝方法
        int[] b = a;
        b[0] = 100;
        System.out.println(Arrays.toString(a));
        System.out.println(Arrays.toString(b));
        if(a==b){
            System.out.println("在第一种拷贝方法中a和b引用的对象相同，属于浅拷贝");
        }else {
            return;
        }
        //第二个浅拷贝方法
        int[] b2 = Arrays.copyOf(a,a.length);
        if(a==b){
            System.out.println("在第二种拷贝方法中a和b引用的对象相同，属于浅拷贝");
        }else {
            return;
        }
        System.out.println("=====下面是深拷贝=======");
        int[] b3 = a.clone();
        b3[0] = 1212121;
        System.out.println(Arrays.toString(a));
        System.out.println(Arrays.toString(b3));
        //通过clone方法实现了深拷贝，通过其原码研究他是如何做到的
        //目前我只知道clone方法实现的深拷贝，且目前看不到它的源码
    }
}
